home *** CD-ROM | disk | FTP | other *** search
/ Amiga Tools 4 / Amiga Tools 4.iso / tools / internet-tools / connect-line / cl / devkit / c / include / cl_route.h < prev    next >
Encoding:
C/C++ Source or Header  |  1995-11-12  |  4.7 KB  |  157 lines

  1. #ifndef INCLUDE_CL_ROUTE_H
  2. #define INCLUDE_CL_ROUTE_H
  3.  
  4. #include <exec/types.h>
  5.  
  6. #define CLR_VERSION 7
  7.  
  8. // Längen der Strings in struct RoutingInfo
  9.  
  10. #define CLR_ROUTSYSTEMLEN 64    // maximale Stringlänge des Zielsystems
  11. #define CLR_NEWDESTLEN 256      // maximale Stringlänge aufgelöste Adresse
  12.  
  13.  
  14. /* Errorcodes CLR_GetRoute();  */
  15.  
  16. #define CLRE_ERROR_UNKNOWN          1   // sollte eigentlich nicht passieren -> Fehler in der Routingroutine
  17. #define CLRE_NO_PERMISSION          2
  18. #define CLRE_MAIL_TOO_LONG          3
  19. #define CLRE_DESTINATION_UNKNOWN    4   // wenn eigene Box Domainserver und das System unbekannt
  20. #define CLRE_TOO_EXPENSIVE          5
  21. #define CLRE_STRING_TOO_SHORT       6   // einer der beiden Zielstrings ist zu kurz
  22. #define CLRE_INVALID_ADDRESS        7   // ungültiges Format in Adresse
  23. #define CLRE_INVALID_MACRO            8    // Error during macro parse
  24.  
  25. // Prefs-ID's
  26.  
  27. #define CLR_RPGLOBALDATA_ID MAKE_ID('F', 'R', 'T', '0')
  28.  
  29. #define CLR_DOMAIN1_ID MAKE_ID('F', 'R', 'T', '1')
  30. #define CLR_DOMAIN2_ID MAKE_ID('F', 'R', 'T', '2')
  31. #define CLR_DOMAIN3_ID MAKE_ID('F', 'R', 'T', '3')
  32. #define CLR_DOMAIN4_ID MAKE_ID('F', 'R', 'T', '4')
  33. #define CLR_DOMAIN5_ID MAKE_ID('F', 'R', 'T', '5')
  34. #define CLR_DOMAIN6_ID MAKE_ID('F', 'R', 'T', '6')
  35. #define CLR_DOMAIN7_ID MAKE_ID('F', 'R', 'T', '7')
  36. #define CLR_DOMAIN8_ID MAKE_ID('F', 'R', 'T', '8')
  37.  
  38.  
  39. #define CLR_SUBID_RPGLOBALDATA 0
  40.  
  41. struct RPGlobalData {
  42.  
  43.     char pathalias[256];    // Name der PathAlias-Datei
  44.     long pagrundkosten;
  45.     long pakbkosten;
  46.     long pamaxkb;
  47.     char Domain1[20];       // Namen der Domaingruppen
  48.     char Domain2[20];
  49.     char Domain3[20];
  50.     char Domain4[20];
  51.     char Domain5[20];
  52.     char Domain6[20];
  53.     char Domain7[20];
  54.     char Domain8[20];
  55.  
  56. };
  57.  
  58.  
  59. // Data der NOL mit den Zuordnungen Absendedomain -> ID der zugehörigen
  60. // Routgruppe
  61.  
  62. #define CLR_SUBID_DOMAINOBJ 1 | TAGT_NOL
  63.  
  64. struct DomainObj {
  65.  
  66.     // char *name ist der Name des NOL-Eintrags
  67.     long id;        // derzeit möglich 1-8
  68.  
  69. };
  70.  
  71.  
  72. // Diese Struktur existiert für jede Routinggruppe einmal
  73.  
  74. #define CLR_SUBID_ROUTINGGLOBAL 0
  75.  
  76. struct RoutingGlobal{
  77.  
  78.     char smarthost[256];        // smarthost für die zugehörigen Absendeadressen
  79.     long grundkosten;           // Kosten pro Mail einmal, wenn per PA
  80.     long kbkosten;              // zusätzlich Kosten pro KB, wenn per PA
  81.     long maxkb;                 // KB-Höchstgrenze für diese Absenderinnen bei PA
  82.  
  83. };
  84.  
  85.  
  86. // NOL für die Routingliste pro ID
  87.  
  88. #define CLR_SUBID_ROUTINGOBJ 1 | TAGT_NOL
  89.  
  90. struct RoutingObj {
  91.  
  92.     // char *name als Name des NOL-Eintrags
  93.     char sys[256];      // Domainbeschreibung
  94.     char Verwalter[256];    // Wenn Domainserver, aber nicht @<Domainname>
  95.     char domserver;     // gesetzt wenn eigene Domain als Domainserver,
  96.                         // dafür keine Smarthost-Routing
  97.  
  98.     long grundkosten;
  99.     long kbkosten;
  100.     long maxkb;
  101.  
  102. };
  103.  
  104. // Flags für RoutingInfo
  105.  
  106. #define CLR_RIF_INTERNAL 1      // Routing erfolgte per interner Systemliste
  107. #define CLR_RIF_PATHALIAS 2     // Routing erfolgte per PathAlias
  108. #define CLR_RIF_DOMAINPREFS 4   // Routing erfolgte per Domain-Prefs
  109. #define CLR_RIF_SMARTHOST   8   // Routing erfolgte per Domainprefs zum Smarthost
  110. #define CLR_RIF_BANG    16      // Bangpfad wurde aufgelöst
  111. #define CLR_RIF_LOCAL   32      // Adresse ist lokaler User (Gültigkeit des Usernamens ungetestet!)
  112. #define CLR_RIF_NOEIL   64      // vorhandener Eintrag in Systemliste wurde nicht zum Routen benutzt
  113. #define CLR_RIF_MACRO    128        // Makro wurde aufgelöst
  114. #define CLR_RIF_PERC    256        // % wurde aufgelöst
  115.                              
  116.  
  117. // Ergebnisstruktur CLR_GetRoute(), beschreibt das Routing, Kosten usw.
  118.  
  119.  
  120. struct RoutingInfo {
  121.  
  122.     char Routsystem[CLR_ROUTSYSTEMLEN];         // Name des Routsystems
  123.     char Eilsystem[CLR_ROUTSYSTEMLEN];          // Name des Systems falls Eilmail
  124.     char NewDest[CLR_NEWDESTLEN];               // eventuell aufgelöster Bangpfad
  125.     long routkosten;                            // Kosten für das Routing
  126.     long flags;                                 // Infos, was passiert ist
  127.  
  128. };
  129.  
  130.  
  131. #ifndef _NO_PROTO
  132. /*
  133.  *  Prototypes
  134.  */
  135. LONG CLR_GetRoute( STRPTR from, STRPTR to, struct RoutingInfo *routinginfo, ULONG size );
  136. LONG CLR_IsZER( STRPTR sysname );                                    
  137. LONG CLR_IsThisMe( STRPTR sysname );                                    
  138. void CLR_LoadRouteData( void );
  139. void CLR_Bang2Domain( STRPTR bangname, STRPTR domainnamebuffer );
  140. #endif
  141.  
  142. #ifndef _NO_PRAG
  143. /*
  144.  *  SAS/C specific pragmas
  145.  */
  146. extern struct Library *CLRBase;
  147. #pragma libcall CLRBase CLR_GetRoute 1e 0A9804
  148. #pragma libcall CLRBase CLR_IsZER 24 801
  149. #pragma libcall CLRBase CLR_CalcRouteFee 2a 09803
  150. #pragma libcall CLRBase CLR_LoadRouteData 30 0
  151. #pragma libcall CLRBase CLR_IsThisMe 36 801
  152. #pragma libcall CLRBase CLR_Bang2Domain 3c 9802
  153. #endif
  154.  
  155. #endif
  156.  
  157.